/*
 * @Author      : ZhouQiJun
 * @Date        : 2025-09-04 01:07:20
 * @LastEditors : ZhouQiJun
 * @LastEditTime: 2025-09-04 01:07:39
 * @Description : dom id 检测
 */
import type { DomId } from '@ol/demos/ol/OlDrawI'

export { isValidDomId }

/**
 * 检查一个字符串是否是合法的 DOM id
 * 规则：
 * - 以字母或下划线开头
 * - 后续字符可包含字母、数字、短横线 - 和下划线 _
 * - 不允许空格和其他特殊字符
 * @param id 字符串
 * @returns 是否是合法 DOM id
 */
function isValidDomId(id: DomId | string): boolean {
  if (typeof id !== 'string' || id.trim() === '') return false
  // 正则规则：首字符是字母或下划线，后面可以是字母数字下划线或短横
  const regex = /^[A-Za-z_][A-Za-z0-9_-]*$/
  return regex.test(id)
}
